package com.pz.cloud.framework.business.workflow.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 流程节点属性
 * @author mazezhan
 */
@Data
@TableName(value = "act_task_node_attr")
@ApiModel(value = "act_task_node_attr对象", description = "流程任务节点属性")
public class TaskNodeAttr {
    /**
     * 工作流任务定义key
     */
    @TableId
    @ApiModelProperty(value = "任务key",required = true)
    private String taskKey;

    /**
     * 节点名称
     */
    @ApiModelProperty(value = "任务节点名称",required = true)
    private String taskName;

    /**
     * 查找规则(默认执行人选择方式)  不允许多选  当只有一个的时候默认填充
     * user:用户 role:角色  deptInRole 部门内角色（筛选申请人部门为XX角色的人） 用户表达式
     */
    @ApiModelProperty("查找规则(默认执行人选择方式)user:用户 dept:部门 role:角色  deptInRole:部门内角色  deptInPost:部门内职务")
    private String defaultHandlerType;

    /**
     * 查找依据(默认执行人选择依据) 不允许多选
     * 可以是userId，roleId  ${user} 在开启流程的时候要设置变量
     */
    @ApiModelProperty("可以是userId，roleId,deptId，postCode")
    private String defaultHandlerValue;

    @ApiModelProperty("用户名，角色名,部门名，职务名 ")
    private String defaultHandlerName;


    @ApiModelProperty("部门内角色或者部门内职务的时候赋值，无值表示审核人所在部门")
    private String defaultHandlerDeptId;

    @ApiModelProperty("部门内角色或者部门内职务的时候赋值，无值表示审核人所在部门")
    private String defaultHandlerDeptName;


    @ApiModelProperty("是否能够修改默认执行人 0否 1能 ")
    private Integer canChooseHandler;

    /**
     * 流程定义Key
     */
    @ApiModelProperty(value = "流程定义Key",required = true)
    private String processDefinedKey;

    /**
     * 流程处理周期 按天计算
     */
    @ApiModelProperty("流程处理周期 按天计算")
    private Integer period;

    @ApiModelProperty("流程处理人规则")
    @TableField(exist = false)
    private List<TaskNodeHandlerRule> handlerRuleList;

    @ApiModelProperty("任务节点拓展字段")
    @TableField(exist = false)
    private List<TaskNodeField> fieldList;


}
